#ifndef _GAMEBOARD_H_
#define _GAMEBOARD_H_

class Cell;

using namespace std;

enum Color {Red, Green, Blue, Yellow, Purple, Orange};
const int NUM_COLORS = 6;

class GameBoard
{
private:
        Color _ColorOfNextFlood;        
        Cell ** _masterptr;			  //The pointer to the game board. This pointer points to the master block
									  //in the upper left corner.

        int numFloods;				  //The number of turns taken
        int nextToColorTracker[NUM_COLORS];     //Keeps tracks of number of cells of each color
                                                //next to the flood


public:
        GameBoard(int size);	//Will define and populate gameboard with user specified
                                //size and random colors. 12x12, 17x17, and 22x22 are the size options.

        void DisplayBoard(int size);    //Will use the _GBptr to display/update board
        void FloodGrid();       //For each cell in grid, will update flooded, nextTo, and
                                //will change the color to point to the master block if necessary
        void SetColorOfNextFlood();
		void FloodGrid(int,int);
};

#endif _GAMEBOARD_H_